package starter.kit.rx.app.network.service;

import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;
import starter.kit.rx.app.model.bean.book.BookRoot;
import starter.kit.rx.app.model.bean.book.Books;
import starter.kit.rx.app.model.bean.filmdetail.FilmDetail;
import starter.kit.rx.app.model.bean.filmlive.FilmLive;
import starter.kit.rx.app.model.bean.filmusbox.FilmUsBox;
import starter.kit.rx.app.model.bean.music.MusicRoot;
import starter.kit.rx.app.model.bean.music.Musics;
import starter.kit.rx.app.model.bean.top250.Root;

/**
 * ============================================================
 * 版权： xx有限公司 版权所有（c）2016
 * <p>
 * 作者：Loofer
 * 版本：1.0
 * 创建日期 ：2016/10/23 16:41.
 * 描述：
 * <p>
 * 注:如果您修改了本类请填写以下内容作为记录，如非本人操作劳烦通知，谢谢！！！
 * Modified Date Modify Content:
 * <p>
 * ==========================================================
 */

public interface DoubanService {

    /**
     * 热映中
     * @return
     */
    @GET("v2/movie/in_theaters")
    Observable<FilmLive> getLiveFilm();

    /**
     * 北美榜单
     * @return
     */
    @GET("v2/movie/us_box")
    Observable<FilmUsBox> getUsBox();

    /**
     * 获取top250
     * @param start
     * @param count
     * @return
     */
    @GET("v2/movie/top250")
    Observable<Root> getTop250(@Query("start")String start, @Query("count")int count);


    /**
     * 根据tag获取图书
     * @param tag
     * @return
     */
    @GET("v2/book/search")
    Observable<BookRoot> searchBookByTag(@Query("tag")String tag,
                                         @Query("start")String start,
                                         @Query("count")int count);

    @GET("v2/book/{id}")
    Observable<Books> getBookDetail(@Path("id") String id);
    /**
     * 根据tag获取music
     * @param tag
     * @return
     */
    @GET("v2/music/search")
    Observable<MusicRoot> searchMusicByTag(@Query("tag")String tag,
                                           @Query("start")String start,
                                           @Query("count")int count);

    @GET("v2/music/{id}")
    Observable<Musics> getMusicDetail(@Path("id") String id);

    /**
     * 获取电影详情
     * @param id
     * @return
     */
    @GET("v2/movie/subject/{id}")
    Observable<FilmDetail> getFilmDetail(@Path("id") String id);

}
